package Student;

import java.sql.Array;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;

public class Test {
    public static void main(String[] args) {
        HashMap hashMap = new HashMap();
        hashMap.put(1, new Stundent("Amy"));
        hashMap.put(2, new Stundent("Joe"));
        hashMap.put(3, new Stundent("Tom"));
        hashMap.put(4, new Stundent("Susan"));

        Set set = hashMap.keySet(); //遍历集合，并将序号与对应人名打印。
        for (Object key : set) {
            System.out.println(key + ":" + hashMap.get(key));
        }

        Scanner scan = new Scanner(System.in);  //向该map集合中插入一个编码为5姓名为控制台输入的人名的信息
        System.out.println("请输入姓名");
        String name = scan.next();
        hashMap.put(5, new Stundent(name));


        hashMap.remove(4);  //移除该map中的编号为4的信息

        hashMap.replace(3, new Stundent("Tommy")); //将map集合中编号为3的姓名信息修改为"Tommy"
        System.out.println("            "); //再次遍历经过上述操作后的集合，并将序号与对应人名打印。(注：第一次输出和第二次输出需用空行隔开)
        Set set1 = hashMap.keySet(); //再次遍历经过上述操作后的集合，并将序号与对应人名打印。(注：第一次输出和第二次输出需用空行隔开)
        for (Object key : set1) {

            System.out.println(key + ":" + hashMap.get(key));
        }
//给定["a", "b", "a", "b", "c", "a", "b", "c", "b"]字符串数组，然后使用Map的key来保存数组中字符串元素，value保存该字符串元素的出现次数，最后统计出各字符串元素的出现次数。
        Map<String, Integer> map = new HashMap();
        List list = Arrays.asList("a", "b", "a", "b", "c", "a", "b", "c", "b"); //数组转换成list
        HashSet<String> hashSet = new HashSet();  //规范字符串泛型
        hashSet.addAll(list);  // 把list转换为set去重
        for (String obj : hashSet) {
            int sum = 0; //计数
            for (int i = 0; i < list.size(); i++) {  //用list长度遍历集合
                if (obj.equals(list.get(i))) {
                    sum++;  //如果有和a,b,c相同的值，计数器自增1
                }

            }
            map.put(obj, sum);    // 接收a b c作为键， sum作为值，出现的次数

        }
        Set set2 = map.keySet();   //转为set遍历打印
        for (Object key : set2) {
            System.out.println(key + "" + map.get(key));
        }

    }
}
